MODIFICACIONES SOBRE LA AVENTURA MODELO Y CARACTERISTICAS IMPORTANTES DE JUEGO Y RUTINAS AÑADIDAS: -He añadido el comando SALIDAS. He cambiado la impresión de las salidas por defecto en la librería. Las he puesto en un procedimiento aparte. Se llama Salidas(loc), e imprime las conexiones de la localidad loc que se le pase como parámetro. Para ver las conexiones de la localidad del jugador hay que llamarla con Salidas(PSI[PSIJugador].Localidad) devolverá las salidas de la pantalla del jugador. Asi que he quitado la impresión de salidas que había por defecto en Descripcionlocalidad. -ListaPsis(loc,verbose): E incluido en la descripción que el jugador vea los Psis que hay en las inmediaciones (en las salidas inmediantamente cercanas). Esta caracteristica usa el Procedimiento ListaPsis(loc), que devuelve en un array las descripciones cortas de los Psis que hay en la localidad pasada como parámetro. A su vez aprovecho este procedimiento para sacar por pantalla los Psis que hay en la localidad del Jugador. Mira la llamada en el modulo librería de DescripcionLocalidad(). Se puede aprovechar para poner cosas como: ¡LA PATRULLA DE ORCOS ESTA EN EL OESTE!. Y asi sabe el jugador que debe esconderse. -SUCESOS(): He quitado del bucle principal Pricipal(), la llamada a procedimiento Psi_Mueve y la incrementación de turnos. Los he puesto en un procedimiento nuevo en el modulo librería que se llama Sucesos(), este engloba a todo lo que sucede en el turno de respuesta del ordenador, y alli se calculará todo lo referido a Psis, sucesos y eventos, etc etc. Aqui deberá ir en más subprocedimientos, por ejemplo, toda la IA de control de Psis, no sólo el limitado Psi_Mueve(). Además esto impide que un Psi haga varias acciones a la vez, asi en cada turno sólo podrá hacer una cosa a la vez... o mata o mover o coger, etc. -Asi que he eliminado USR_Post(). Para eso está Sucesos(). -Añadida NoMueve(dir) para poner excusas de porqué el jugador no pudo mover en esa dirección. Esta es complementaria a USR_MueveJugador(dir), ya que me parece más logico hacer las excusas en el caso de que no mueva, que en vez de en USR_MueveJugador, pues esto puede ralentizar la rutina de movimiento. -USR_Fin(): Esto lo he añadido para que el programador pueda poner un fin genérico o variable, pero ordenado. Desde este se debe de llamar a Abandonar(). -PROCESA_COND(comando): Aquí se puede impedir la ejecución de los comandos del juego en ciertas cirscunstancias. -Añadida la función ArrayRemove(array,posicion), que es la función antagónica a ArrayInsert(array,posicion,elemento) que viene por defecto en el lenguaje. Esta nueva función facilita el hacer operaciones con arrays. -ArrayRemoveItem(array,item): que borra todas las ocurrencias de item en el array. -Añadido en los procedimientos EXAMINAR, COGER; más posibilidades a la hora de decir si el objeto de la acción, no está o no existe o no tiene importancia. -TypeOf2(obj). Añadido. Es más completo que el original TypeOf, aunque llama internamente a él. -Arreglado que no se pueda ni HABLAR ni DAR ni BESAR a PSIs que sean hostiles o que esten muertos (aunque besar a un muerto si lo he dejado). Para ello se usan las variables de PSIs "locuaz" "muerto" y "hostil". -Añadido RobaObjetos(psi). Esto pone en el limbo todos los objetos del PSI. -He extraido la impresión de los objetos y los he puesto en un procedimiento aparte que se llama ListaObjetos(loc), Asi que imprimirá los objetos de cualquier habitación, aunque sólo se usa para la Descripción de localidad del jugador. -PSI_IA(). Este trata sobre toda la "inteligencia" de PSIS. Lo que incluye moverse y atacar, de cada uno de ellos. -Añadido PSIAtaca, que es una rutina de ataque entre psis, que contempla incluso al jugador. Allí están consideradas las armas, los niveles de fuerza, energía, mutilaciones, todo!!!. He modificado convenientemente para mi propósito las subrutinas Golpear, Atacar, y he añadido Empujar. -Añadido Gore(), que imprime en cada localidad los niveles de sangre y miembros amputados y cuerpos muertos de los zombies matados. -EstadoJugador(), esto es el que informa de el estado de fuerza cansancio y salud del jugador. -Añadido a USR_MueveJugador(), la detección de un zombie en el camino..., para imperdir que se pueda avanzar sobre ellos fácilmente. -ArticuloPSI, le he cambiado el nombre y ahora es Pronombre(psi), pues eso es lo que hace... sustituye al nombre y no es un artículo.